package com.xrh.xdemo.service.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 * @function 操作痕迹注解
 * @author 肖荣辉
 * @date 2024年01月04日
*/
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperateTrace {

    /**
     * 操作类型(新增/修改/提交... , 随自己自定义)
     */
    String operateType();
    
    /**
     * 业务类型(用户信息,项目信息,受试者信息..., 最自己自定义)
     */
    String businessType() default "";

    /**
     * 业务编号取值路径(路径用.分隔 , 比如: data.userName , 该值会从参数或者返回值中获取 )
     */
    String businessNoKeyPath() default "";
    
    /**
     * 业务编号是否取自于返回值
     */
    boolean businessNoFromReturnResult() default false;
    
    /**
     * 日志标题取值路径(路径用.分隔 , 比如: data.userName , 该值会从参数或者返回值中获取)
     */
    String titleKeyPath() default "";
    
    /**
     * 标题是否取自于返回值
     */
    boolean titleFromReturnResult() default false;
    
    /**
     * 标题(若设置了标题, 则不从参数中获取)
     */
    String title() default "";

}
